module.exports = {
  // 继承推荐规范配置
  extends: [
    'stylelint-config-standard',
    'stylelint-config-recommended-scss',
    'stylelint-config-recommended-vue/scss',
    'stylelint-config-html/vue',
    'stylelint-config-recess-order'
  ],
  // 指定不同文件对应的解析器
  overrides: [
    {
      files: ['**/*.{vue}'],
      customSyntax: 'postcss-html',
      rules: {}
    },
    {
      files: ['**/*.{scss}'],
      customSyntax: 'postcss-scss',
      rules: {
        // 允许未知属性
        'property-no-unknown': [
          true
          // {
          //   ignoreProperties: ['theme']
          // }
        ]
      }
    }
  ],
  // 自定义规则
  rules: {
    'import-notation': 'string', // 指定导入CSS文件的方式("string"|"url")
    'selector-class-pattern': null, // 选择器类名命名规则
    'custom-property-pattern': null, // 自定义属性命名规则
    'keyframes-name-pattern': null, // 动画帧节点样式命名规则
    'no-descending-specificity': null, // 允许无降序特异性
    'no-empty-source': null, // 禁止内容为空
    'alpha-value-notation': 'number', // 为 alpha 值指定百分比或数字表示法
    'color-function-notation': 'legacy', // 为颜色函数指定现代或遗留符号
    'media-feature-range-notation': 'prefix', // 为媒体特性范围指定上下文或前缀表示法
    'scss/at-import-partial-extension': 'always', // 在@import 命令中要求或不允许扩展名
    // 禁止未知的伪类选择器
    'selector-pseudo-class-no-unknown': [
      true,
      {
        ignorePseudoClasses: ['global', 'export', 'deep']
      }
    ],
    // 禁止未知的伪元素选择器
    'selector-pseudo-element-no-unknown': [
      true,
      { ignorePseudoElements: ['v-deep', 'v-global', 'v-slotted'] }
    ],
    'scss/no-global-function-names': null,
    'declaration-block-no-redundant-longhand-properties': [
      true,
      {
        ignoreShorthands: ['overflow', 'inset']
      }
    ],
    'at-rule-empty-line-before': [
      'always',
      {
        ignore: ['inside-block', 'first-nested']
      }
    ],
    'number-max-precision': [
      5,
      {
        // ignoreUnits: ['em', 'rem'],
        severity: 'warning'
      }
    ],
    'custom-property-empty-line-before': [
      'never',
      {
        ignore: ['first-nested', 'inside-single-line-block']
      }
    ]
  }
};
